During the past years, the interest in using mobile and landline/wireline computing devices in day-to-day communications has increased. Desktop computers, workstations, and other wireline computers currently allow users to communicate, for example, via e-mail, video conferencing, and instant messaging (IM). Mobile devices, for example, mobile telephones, handheld computers, personal digital assistants (PDAs), etc. also allow the users to communicate via e-mail, video conferencing, IM, etc. Mobile telephones have conventionally served as voice communication devices, but through technological advancements they have recently proved to be effective devices for communicating data, graphics, etc. Wireless and landline technologies continue to merge into a more unified communication system, as user demand for seamless communications across different platforms increases.
Many communication applications allow for real-time or near real-time communication that falls outside of the traditional voice communication associated with wireline and wireless telephone communications. Chat sessions, instant messaging, Short Message Service (SMS), video conferencing, are a few such communication vehicles. Many of these types of communications are expected to become increasingly popular, particularly in view of the proliferation of wireless devices and continual technological breakthroughs.
In order to implement such technologies, “presence” technology is used to determine the location, willingness to communicate, and other parameters relating to real-time or near real-time communications. The presence technology generally refers to applications and services that facilitate location and identification of one or more endpoints to such communication links. For example, if a first user of a wireless, handheld device, intends to initiate an IM session with a second IM user, presence services may be used to present the second user's willingness to receive IM messages. Presence services are an integral part of third generation (3G) wireless networks, and are intended to be employed across a wide variety of communication devices.
Presence information may be created at a presence server or an associated system. Presence information may be a status indicator that conveys the ability and willingness of a potential user to communicate with other users. The presence server may provide the presence information for distribution to other users to convey the availability of the user for communication. Presence information is used in many communication services, such as IM and recent implementations of voice over IP communications.
More specifically, a user client may publish a presence state to indicate its current communication status. This published state informs others that wish to contact the user of his availability and willingness to communicate. One use of presence is to display an indicator icon on IM clients, for example a choice of a graphic symbol with an easy-to-convey meaning, and a list of corresponding text descriptions of each of the states. This is similar to the “on-hook” or “off-hook” state of a fixed telephone.
Common states regarding the user's availability are “free for chat”, “busy”, etc. Such states exist in many variations across different modern instant messaging clients. However, the standards support a rich choice of additional presence attributes that may be used for presence information, such as user mood, location, or free text status.
Presence service is typically implemented as a network service which accepts, stores and distributes presence information. The presence service may, for example, be implemented as a single server or may have an internal structure involving multiple servers and proxies. There may be complex patterns of redirection and proxying while retaining logical connectivity to a single presence service. Also presence service may be implemented as direct communication among presentity and watchers, i.e., a server is not required.
A number of entities may be implemented in a presence service architecture. One of these entities is referred to as the “Presentity”, which is an entity that provides presence information. Another entity is the Presence Server, which receives presence information from presentities. The “Watcher” is an entity that is interested in the presence information.
The presence information (e.g., location, willingness to communicate at a certain time or with certain users, etc.) may be collected and utilized by presence servers, which may notify authorized Watchers who are interested in certain presence information. Watcher applications may be implemented in wireline and/or wireless terminals to obtain presence information from the presence servers about other users. This may come in the form of a notification, issued to the Watcher by the Presence Server.
Notifications to users/watchers that a targeted user/device has become available may be sent as complete or partial presence information. In other words, there are a number of different pieces of presence information that can be associated with the totality of the presence information. In a similar manner to the presence information and associated structure, there are location servers and location information regarding the users. The location information may include geographical location information.
Presence technology has been implemented in many different types of networks, including those using Session Initiation Protocol (SIP) for communications, such as networks operating in conformance with IP Multimedia Subsystem (IMS) standards. The basic SIP Presence XML PIDF document is described in IETF RFC 3863 and the basic SIP presence event package is defined in IETF RFC 3856. These RFCs describe how a Watcher can subscribe to presence information of a Presentity using SIP signaling. Once the Watcher has been authorized by the Presentity (e.g., using a presence.watcherinfo event package as described in IETF RFC 3857), changes to the presence information will be notified to the Watcher via SIP. The notification contains the presence information enclosed in the PIDF XML document.
The list of watchers associated with a Presentity is included in a Watcherinfo XML document. The Presentity subscribes to the presence.watcherinfo event of their own Watcherinfo XML document. This subscription is automatically authorized by the Presence system. When a new Watcher requests a subscription to the Presentity, it is added to the pending section of the Watcherinfo document, and this change is notified to the Presentity. The Presentity can now authorize (i.e., allow or reject) the new Watcher. In OMA/IMS, XCAP is used to edit the Presence authorization document. Once authorization is complete, the new Watcher gets to see the latest presence information (in case the subscription is still active or when a new subscription request is issued), i.e., a presence notification is sent to the Watcher as including the latest information of the Presentity.
Communities and social networks (e.g., Facebook, MySpace, Yahoo, MSN, and Google) are among the leading wireless service providers (WSPs) on the Internet today. Presence is already established in these Internet communities, with different solutions for different communities. A significant aspect of many Internet communities is the ability to extend one's own network by finding people who have a common interest, or by finding people who are friends of people you know yourself. The successful Social networks provide several ways to extend your network and interact with new people. This ability to extend your network is a significant aspect of such social networks and is used in so-called “viral marketing” to spread marketing messages amongst friends, and spread the message even wider as people add new friends.
However, care must be taken with people's social network information. People want to extend their social network, but also want to control the privacy and security regarding the information that is passed around in their social network. So this ability to extend a social network also needs to be coupled with proper security and privacy mechanisms.
Considering this social network functionality in the context of IMS networks, IMS provides a managed multimedia network with security and QoS capabilities. IMS is primarily for exchanging presence information and establishing multimedia sessions between users. In addition, IMS networks can be used to establish sessions between network servers and users. This make IMS networks valuable to Internet WSPs, where the IMS network is exposed to the WSPs via e.g., HTTP based interfaces such as RESTful or PARLAY-X. Two examples of how IMS Presence technology can be used to support a WSP web-site include: (1) enabling users of a web site to see other user's presence, and providing a presence engine, hosted in a IMS.Presence Server, to push content to users; and (2) enabling users subscribe to a content feed and notifying such users of content updates via the presence mechanisms.
However, presence usage within IMS (3GPP/OMA) specified systems is based upon the aforedescribed IETF RFCs. Thus, while there may be many watchers of the presence event package for a Presentity in IMS, there is typically only one watcher of the presence.watcherinfo event package—namely the Presentity itself. In other words, according to the standard, only the user can see the list of other users they are associated with, i.e., only the user can see its own list of authorized watchers. This means that there is no mechanism defined for IMS which would enable users to extend one's “buddy” or “friend” list, e.g., based upon information from other people's presence lists. Thus, the social networking and viral effects that are so successful on Internet web-sites are not supported in the IMS Presence systems today.
Accordingly, it would be desirable to provide devices, systems and methods for presence based applications that avoid the afore-described problems and drawbacks. More specifically, it would be desirable to provide mechanisms which enable buddy subscription in Presentities, with such mechanisms preferably employing authorization techniques that provide users with adequate security and privacy that they demand.